package com.demo.java.OD201_250.OD233;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【斗地主 2】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145932752
 */
public class OdMain {
    // 牌面与索引映射表
    static Map<String, Integer> cardMap = new HashMap<>();

    // 初始化映射关系
    static void initCardMap() {
        cardMap.put("3", 0);
        cardMap.put("4", 1);
        cardMap.put("5", 2);
        cardMap.put("6", 3);
        cardMap.put("7", 4);
        cardMap.put("8", 5);
        cardMap.put("9", 6);
        cardMap.put("10", 7);
        cardMap.put("J", 8);
        cardMap.put("Q", 9);
        cardMap.put("K", 10);
        cardMap.put("A", 11);
        cardMap.put("2", -1); // 2 不能用于顺子，直接忽略
    }

    // 输出顺子
    static void printSequence(int start, int end) {
        String[] cardNames = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
        for (int i = start; i < end; i++) {
            if (i != start) {
                System.out.print(" ");
            }
            System.out.print(cardNames[i]);
        }
        System.out.println();
    }

    public static void main(String[] args) {
        initCardMap(); // 初始化映射表
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            int[] count = new int[12]; // 记录 3~A 的出现次数
            String[] cards = line.split(" ");

            // 统计牌的数量
            for (String card : cards) {
                int index = cardMap.get(card);
                if (index != -1) { // 忽略 "2"
                    count[index]++;
                }
            }

            boolean foundSequence = false; // 标记是否找到顺子

            // 遍历 count，寻找顺子
            for (int i = 0; i < 12; i++) {
                int j = i;
                while (j < 12 && count[j] > 0) {
                    j++;
                }
                if (j - i >= 5) { // 需要至少 5 张连续牌
                    foundSequence = true;
                    for (int k = i; k < j; k++) {
                        count[k]--; // 使用掉一组顺子
                    }
                    printSequence(i, j); // 输出找到的顺子
                }
            }

            // 如果没有找到顺子，输出 "No"
            if (!foundSequence) {
                System.out.println("No");
            }
        }
        scanner.close();
    }
}